From c8230915a2ff08fed97eb0aa48c42ffeb527240f Mon Sep 17 00:00:00 2001 From: memdmp Date: Sun, 21 Sep 2025 00:19:45 +0000 Subject: feat: scope prompt for a target="_blank" --- src/routes/scope-prompt/ok/if/[scopes]/+page.server.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/routes/scope-prompt/ok/if/[scopes]/+page.server.ts (limited to 'src/routes/scope-prompt/ok/if/[scopes]/+page.server.ts') diff --git a/src/routes/scope-prompt/ok/if/[scopes]/+page.server.ts b/src/routes/scope-prompt/ok/if/[scopes]/+page.server.ts new file mode 100644 index 0000000..485edf4 --- /dev/null +++ b/src/routes/scope-prompt/ok/if/[scopes]/+page.server.ts @@ -0,0 +1,17 @@ +import { checkScope } from '$lib/auth'; +import { redirect } from '@sveltejs/kit'; + +export const load = async (e) => { + const scopes = e.params.scopes + .split(' ') + .flatMap((v) => v.split(',')) + .flatMap((v) => v.split('+')) + .filter((v) => v); + const session = await e.locals.auth(); + const hasScopes: string[] = session.tokens.scope?.split(' ') ?? []; + if (checkScope(session, scopes, false)) throw redirect(303, '../..'); + else + return { + missingScopes: scopes.filter((scope) => !hasScopes.includes(scope)), + }; +}; -- cgit v1.2.3